home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Present…nuary (Partner) - Disc 1 / The Apple Reference and Presentations Library (Disc 1)(January 1994).iso / 3M / US English / 3M Rainbow Ctlr / 3M Rainbow Ctlr 3.0-68K / 3M Rainbow PS Support / PS Startup < prev    next >
Text File  |  1994-02-07  |  9KB  |  396 lines

  1. %!
  2. % 3M Rainbow PS Startup
  3.  
  4. % (c) Copyright 1994 3M
  5. % (c) Copyright 1990-1994 Adobe Systems Incorporated.
  6. % All rights reserved.
  7.  
  8. % Patents Pending
  9.  
  10. % NOTICE:  All information contained herein is the property of
  11. % Adobe Systems Incorporated.  Many of the intellectual and
  12. % technical concepts contained herein are proprietary to Adobe,
  13. % are protected as trade secrets, and are made available only to
  14. % Adobe licensees for their internal use.  Any reproduction or
  15. % dissemination of this software is strictly forbidden unless
  16. % prior written permission is obtained from Adobe.
  17.  
  18. % PostScript and Display PostScript are trademarks of Adobe Systems
  19. % Incorporated which may be registered in certain jurisdictions.
  20.  
  21. %
  22. % Main startup job.
  23. %
  24.  
  25. currentpacking
  26. true setpacking
  27.  
  28. currentglobal
  29. true setglobal
  30.  
  31. %
  32. % The default color rendering dictionary is only suitable for a
  33. % monochrome device. Switch to a sample rendering suitable for a color
  34. % device if the process color model is DeviceRGB or DeviceCMYK
  35. %
  36.  
  37. % remember the current default monochrome colorrendering
  38.  
  39. /MonochromeColorRendering currentcolorrendering /ColorRendering defineresource pop
  40.  
  41. % select a default colorrendering based upon ProcessColorModel
  42.  
  43. currentpagedevice dup /ProcessColorModel known {
  44.   /ProcessColorModel get /DeviceGray ne
  45.   {
  46.     /DefaultColorRendering                              % key
  47.     /3MRainbowCRD /ColorRendering findresource            % instance
  48.     /ColorRendering                                      % category
  49.     defineresource pop
  50.   } if
  51. }{
  52.   pop % currentpagedevice dict
  53. } ifelse
  54.  
  55. setglobal
  56.  
  57. %
  58. % Delete the media size and tray definitions not supported by this product.
  59.  
  60. % Product initially includes:
  61. %    letter, lettersmall, legal, ledger, 11x17, a4, a3, a4small, b5, note
  62.  
  63.  
  64. [/legal /ledger /b5] {
  65.   userdict exch undef
  66. } forall
  67.  
  68. % Product initially includes:
  69. %    lettertray, legaltray, ledgertray, a3tray, a4tray, b5tray, 11x17tray
  70.  
  71. [/legaltray /ledgertray /b5tray] {
  72.   statusdict exch undef
  73. } forall
  74.  
  75. %
  76. % Define Default OutputDevice resource.
  77. %
  78.  
  79. currentglobal
  80. true setglobal
  81.  
  82. /Default <<
  83.   /PageSize                [[858.24 1236.48]]
  84.   /ManualSize            [[858.24 1236.48]]
  85.   /HWResolution            [[300.0 300.0]]
  86. >> /OutputDevice defineresource pop
  87.  
  88. /Printer <<
  89.   /PageSize                [[612 792] [842 1191] [595 842] [858.24 690.24] [858.24 1236.48]]
  90.   /ManualSize            [[612 792] [842 1191] [595 842] [858.24 690.24] [858.24 1236.48]]
  91.   /HWResolution            [[300.0 300.0]]
  92. >> /OutputDevice defineresource pop
  93.  
  94. setglobal
  95.  
  96. %
  97. % Files captured on a PC may contain one or more ^D characters to mark EOF.
  98. % These character are part of the communication protocol and not part of the
  99. % PostScript language.  The following code defines a procedure for ^D which
  100. % simply issues a warning and effectively discards the character.
  101. %
  102.  
  103. (\004) cvn
  104. {
  105. } bind def
  106.  
  107.  
  108. (\032) cvn
  109. {
  110. } bind def
  111.  
  112. %
  113. % To change the font which is substituted for missing fonts, uncomment the
  114. % line below and change "/Courier" to be "/YourSubstituteFontname".
  115. %
  116.  
  117. currentglobal
  118. true setglobal    % This is important for Kanji
  119. $error /SubstituteFont {
  120.     128 string dup 0 (MissingFont: ) putinterval dup 3 -1 roll
  121.     100 string cvs 13 exch putinterval
  122.     /CPSI /ProcSet findresource begin
  123.     () externalcommand pop pop
  124.     end 
  125.     /Courier
  126. } put
  127. setglobal
  128.  
  129. %
  130. % Initialize Kanji resources, if any are available.
  131. %
  132.  
  133. mark
  134.   {
  135.     /Kanji /ProcSet findresource
  136.     /initialize get exec
  137.   } stopped
  138. cleartomark    % Ignore errors.
  139.  
  140. setpacking
  141.  
  142. % To save memory, no fonts are initially in FontDirectory.
  143. % Applying findfont to the standard set loads enough to define the font
  144. % but does not load all of the individual character definitions.
  145. % This can be important because performace can suffer if a document uses
  146. % save/restore around each page and the first reference to font is within
  147. % the save/restore, which cause the font to be reloaded for each page.
  148. %
  149.  
  150. [
  151.   /Times-Roman        /Helvetica                /Courier                /Symbol
  152.   /Times-Italic        /Helvetica-Oblique        /Courier-Oblique
  153.   /Times-Bold        /Helvetica-Bold            /Courier-Bold
  154.   /Times-BoldItalic    /Helvetica-BoldOblique    /Courier-BoldOblique
  155. ] {
  156.       findfont    % Locate the font definition
  157.      pop            % Discard the dictionary
  158. } forall
  159.  
  160. %
  161. % Clean up userdict after loading fonts
  162. %
  163.  
  164. [/| /|- /-| /RD /ND /NP] {
  165.   dup userdict exch known {
  166.    userdict exch undef
  167.   }{
  168.     pop
  169.   } ifelse
  170. } forall
  171.  
  172.  
  173. %
  174. %    **** Begin section to add 3M Specific commands to PostScript ****
  175. %
  176.  
  177. userdict begin
  178.  
  179. %
  180. %    New commands to change to CMYK and Grayscale modes
  181. %
  182.  
  183.     /mmmSetupGrayscaleMode {
  184.         %  Change CPSI's Color Model
  185.         << /ProcessColorModel /DeviceGray >> setpagedevice
  186.         
  187.         %  Change the Color Rendering resource
  188.         /DefaultColorRendering                                  % key
  189.         /MonochromeColorRendering /ColorRendering findresource    % instance
  190.         /ColorRendering                                          % category
  191.         defineresource pop
  192.     } bind def
  193.     
  194.     /mmmSetupCMYKMode {
  195.         %  Change CPSI's Color Model
  196.         << /ProcessColorModel /DeviceCMYK >> setpagedevice
  197.         
  198.         %  Change the Color Rendering resource
  199.         /DefaultColorRendering                                  % key
  200.         /3MRainbowCRD /ColorRendering findresource                % instance
  201.         /ColorRendering                                          % category
  202.         defineresource pop
  203.     } bind def
  204.  
  205. %
  206. %    Page size operators for compatibility with Rainbow Level 1.
  207. %
  208.     
  209.     %  Define the WB command
  210.     /WB {
  211.         << 
  212.             /PageSize        [858.24 1236.48]
  213.             /ImagingBBox    null
  214.             /Policies        <<
  215.                                 /PolicyNotFound        1
  216.                                 /PageSize            7
  217.                                 /ProcessColorModel    0
  218.                                 /NumCopies            1
  219.                             >>
  220.         >> setpagedevice
  221.     } bind readonly def
  222.     
  223.     %  Change the /PageSize policy in the setpage and setpageparams definitions
  224.     
  225.     statusdict begin
  226.         /setpageparams load
  227.             mark exch
  228.             aload pop
  229.             3 -1 roll
  230.             mark exch
  231.             aload pop
  232.             4 -1 roll
  233.             pop 7        % New Policy
  234.             4 1 roll
  235.             ] cvx
  236.             3 1 roll
  237.             ] cvx /setpageparams exch def
  238.             
  239.         /setpage load
  240.             mark exch
  241.             aload pop
  242.             3 -1 roll
  243.             mark exch
  244.             aload pop
  245.             4 -1 roll
  246.             pop 7        % New Policy
  247.             4 1 roll
  248.             ] cvx
  249.             3 1 roll
  250.             ] cvx /setpage exch def
  251.     end
  252.     
  253.     %  Destroy Adobe's setdefaulttimeouts command and substitute
  254.     statusdict /setdefaulttimeouts undef
  255.     /setdefaulttimeouts { pop pop pop } bind readonly def
  256.  
  257.  
  258. %
  259. %    Concatinate strings.
  260. %    [obj1] [obj2] mark (str1) (str2) ... (strn)  stringcat  [obj1] [obj2] compstr
  261. %
  262.     
  263.     /stringcat {
  264.         counttomark /stringcount exch def
  265.         /totallength 0 def
  266.         stringcount copy
  267.         stringcount { length /totallength exch totallength add def } repeat
  268.         /compstr totallength string def
  269.         /strpos totallength def
  270.         stringcount {
  271.             dup length /strpos exch neg strpos add def
  272.             compstr strpos 3 -1 roll putinterval
  273.         } repeat
  274.         pop
  275.         compstr
  276.     } bind def
  277.  
  278. %
  279. %    Redefine the copypage and showpage functions to handle multiple copy
  280. %    capabilities.
  281. %
  282.     
  283.     /copystr 10 string def
  284.     /*showpage /showpage load def
  285.     /showpage {
  286.         /CPSI /ProcSet findresource begin
  287.         statusdict begin
  288.         /SaveCopies #copies def
  289.         #copies 0 gt {
  290.             mark (NumCopies: ) #copies copystr cvs stringcat () externalcommand pop pop
  291.             /#copies 1 def
  292.         } if
  293.         *showpage
  294.         /#copies SaveCopies def
  295.         end % statusdict
  296.         end % CPSI Procset
  297.     } bind def
  298.     
  299.     /*copypage /copypage load def
  300.     /copypage {
  301.         /CPSI /ProcSet findresource begin
  302.         statusdict begin
  303.         (NumCopies: 1) () externalcommand pop pop
  304.         *copypage
  305.         end % statusdict
  306.         end % CPSI Procset
  307.     } bind def
  308.  
  309. %
  310. %    Do not allow a flatness setting larger than 3 pixels
  311. %
  312.  
  313.     /*setflat /setflat load def
  314.     /setflat {
  315.         dup 3.0 gt {
  316.             (%%[ Warning: ") print =string cvs print
  317.             ( setflat" is inappropriate at 300 dpi; using "3.0 setflat" ]%%\r\n) print
  318.             flush
  319.             3.0
  320.         } if
  321.         *setflat
  322.     } bind def
  323.  
  324.  
  325. %
  326. %    Define Separation definition commands
  327. %
  328.     
  329.     /mmmBeginYellow {
  330.         /CPSI /ProcSet findresource begin
  331.         (BeginYellow) () externalcommand pop pop
  332.         end % CPSI ProcSet
  333.     } bind def
  334.     
  335.     /mmmBeginMagenta {
  336.         /CPSI /ProcSet findresource begin
  337.         (BeginMagenta) () externalcommand pop pop
  338.         end % CPSI ProcSet
  339.     } bind def
  340.     
  341.     /mmmBeginCyan {
  342.         /CPSI /ProcSet findresource begin
  343.         (BeginCyan) () externalcommand pop pop
  344.         end % CPSI ProcSet
  345.     } bind def
  346.     
  347.     /mmmBeginBlack {
  348.         /CPSI /ProcSet findresource begin
  349.         (BeginBlack) () externalcommand pop pop
  350.         end % CPSI ProcSet
  351.     } bind def
  352.     
  353.     /mmmBeginUnknown {
  354.         /CPSI /ProcSet findresource begin
  355.         (BeginUnknown) () externalcommand pop pop
  356.         end % CPSI ProcSet
  357.     } bind def
  358.     
  359.     
  360.     end  % userdict
  361.  
  362. %
  363. % Set System Defaults
  364. %
  365.  
  366. <<
  367.     /MaxScreenStorage            204800
  368. >> setsystemparams
  369.  
  370. <<
  371.     /Policies <<
  372.         /PolicyNotFound        1
  373.         /PageSize            7
  374.         /ProcessColorModel    0
  375.         /NumCopies            1
  376.     >>
  377. >> setpagedevice
  378.  
  379. currentsystemparams begin
  380. 2 dict dup dup
  381. /MaxSourceList RamSize 5 mul 10 idiv dup 260000 lt { pop 260000 } if put
  382. /MaxDisplayList RamSize 1 mul 10 idiv dup 260000 lt { pop 260000 } if put
  383. end
  384. setsystemparams
  385.  
  386. currentcolortransfer setcolortransfer
  387. {dup dup mul mul 0.5 mul} setblackgeneration
  388. {pop 0} setundercolorremoval
  389.  
  390.  
  391. %
  392. % End of 3M Rainbow startup file
  393. %
  394.